package com.example.demo;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.example.demo.classes.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.security.SecurityProperties;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController // 用于定义该类为一个RESTful API控制器
public class UserController {
    @Autowired
    private UserMapper userMapper;

    // 构造函数，用于初始化模拟数据
    public UserController() {
        // 初始化一些用户数据

    }
    // 映射GET请求，获取所有用户
    @GetMapping("/users")
    public List<User> getAllUsers() {
        System.out.println("11111");
        return userMapper.selectList(null); // 返回200状态码和用户列表
    }
    @GetMapping("/users/{uid}")
    public List<User> getOneUsers(@PathVariable Long uid) {
        LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>();
        lqw.eq(User::getUid,uid);
        return userMapper.selectList(lqw); // 返回200状态码和用户列表
    }
    //创建新用户
    @PostMapping("/users")
    public User createUser(@RequestBody User user) {
        userMapper.insert(user);
        return user;
    }
    // 更新指定ID的用户
    @PutMapping("/users/{uid}")
    public Integer updateUser(@PathVariable Long uid, @RequestBody User updatedUser) {
        return userMapper.updateById(updatedUser);
    }
    // 禁用指定ID的用户
    /*
    @PutMapping("/disable/{id}")
    public String disableUser(@PathVariable Long id) {
        // 创建UpdateWrapper来设置更新条件
        UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("id", id); // 条件：ID匹配
        updateWrapper.set("status", "DISABLED"); // 更新status为DISABLED
        // 执行更新操作
        boolean updated = userMapper.update(null, updateWrapper) > 0;
        // 返回禁用成功的消息
        if (updated) {
            return "用户ID【 " + id + " 】已禁用";
        } else {
            return "禁用用户失败，用户ID【 " + id + " 】不存在或更新失败";
        }
    }*/
    public UserMapper getUserMapper() {
        return userMapper;
    }
}